<?php
/**
 * Created by PhpStorm.
 * User: lenovo
 * Date: 2020/6/12
 * Time: 18:04
 */


/**
 * Websocket/服务端主动推送
 * showdoc
 * @catalog Websocket
 * @title  用户基数聊天数据
 * @description 用户基数聊天数据
 * @param extra.group_id  是 string   群的id
 * @param action  是 string   动作，leaveGroup
 * @return {"code":200,"msg":"OK","data":"{\"to_app_user_id\":\"572402b0988e33369ad8ff0d3cd440a9\",\"content\":\"\",\"type\":19,\"extra\":{\"friendList\":{},\"groupList\":{}},\"sub_type\":\"personal\"}","action":"systemMessage","nonce":"1595489198766l8urH1","time":1595489198904,"user_id":8,"msg_id":452}
 * @return_param  code int 状态码(200:成功0:失败400)
 *@return_param  extra.friendList  array 最近联系人列表，有聊过，有未读消息的才会到这边
 *@return_param  extra.groupList  array 最近联系群列表，有未读消息的才会到这边
 * @return_param  group_id string 群id
 * @return_param  count int 未读数
 * @return_param  type int 用户信息变动 10
 * @return_param  last_message  string 最后一条消息、
 * @remark  用于同步数据，用户每次建立连接，服务端都会统计用户未接收的信息，并自动下发
 */


/**
 * 退出群
 * showdoc
 * @catalog Websocket
 * @title  退出群
 * @description 退出群的接口
 * @method ws
 * @param extra.group_id  是 string   群的id
 * @param action  是 string   动作，leaveGroup
 * @return {"code":200,"result":'',"msg":"创建成功"}
 * @return_param  code int 状态码(200:成功0:失败400)
 *@return_param  extra.group_id  string 群id
 * @remark  注意了，退群本人会收到消息，本群其他人后续也会收到系统消息，具体可以参考系统消息说明
 */



/**
 * showdoc
 * @catalog Websocket
 * @title  视频消息
 * @description 视频消息
 * @method websocket
 * @url /
 * @param  extra 是 string 额外信息，有需要增加的字段，全部往这边塞
 * @param  videoTotalTime 是 int 视频时长，放extra
 * @param  width  int 视频的宽度
 * @param  weight  int 视频的高度
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  nonce string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @return_param  msg_id string  消息id
 * @return_param  user_id int 发送人id
 * @return_param  nickname string 昵称
 * @return_param  type string 消息类型：1文本2语音3图片4地理位置5红包6名片7视频
 * @return_param  extra string 额外信息，有需要增加的字段，全部往这边塞
 * @return_param  cover_url string 缩略图的url，放extra
 * @return_param  video_url  string 视频的url，放extra
 * @return_param  thumbWidth  int 缩略图的宽度
 * @return_param  thumbHeight  int 缩略图的高度
 * @return_param  videoTotalTime  int 视频时长
 * @return_param  nickname   string  发言人昵称
 * @return_param  head   string 发言人头像
 * @remark  对方接受消息，会得到以下字段，内容content，发送人昵称nickname，发送人头像head，消息id ,action还是chat,消息发送时间time,发消息人的用户id 即user_id。文本类消息直接放content。
 */
function video(){

}

/**
 * showdoc
 * @catalog Websocket
 * @title  文件消息
 * @description 文件消息
 * @method
 * @url /
 * @param content 是 string  内容
 * @param  extra 是 string 额外信息，有需要增加的字段，全部往这边塞
 * @param  extra.file_name 是 string 文件名,例如：新建文件夹.doc
 * @param  extra.file_size 是 int 文件大小，例如：2312432
 * @param  extra.etag 是 string 文件哈希,例如：dsfsfaegfsrgr
 * @return_param  extra.file_name  string 文件名
 * @return_param  extra.file_size  string 文件大小
 * @return_param  extra.etag  string 文件哈希
 * @return_param  extra.download_url  string 文件下载地址
 * @remark  对方接受消息，会得到以下字段，内容content，发送人昵称nickname，发送人头像head，消息id ,action还是chat,消息发送时间time,发消息人的用户id 即user_id。文本类消息直接放content。
 */


/**
 * showdoc
 * @catalog Websocket
 * @title  文本消息
 * @description 文本消息
 * @method
 * @url /
 * @param content 是 string  内容
 * @param  extra 是 string 额外信息，有需要增加的字段，全部往这边塞
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  nonce string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @return_param  msg_id string  消息id
 * @return_param  user_id int 发送人id
 * @return_param  nickname   string  发言人昵称
 * @return_param  head   string 发言人头像
 * @return_param type string 消息类型：请看同一说明
 * @remark  对方接受消息，会得到以下字段，内容content，发送人昵称nickname，发送人头像head，消息id ,action还是chat,消息发送时间time,发消息人的用户id 即user_id。文本类消息直接放content。
 */
function text(){

}


/**
 * showdoc
 * @catalog Websocket
 * @title  图片消息
 * @description 图片消息
 * @method
 * @url /
 * @param  width 是  int 原图的宽度
 * @param  height  是 int 原图的高度
 * @param  extra 是 string 额外信息，有需要增加的字段，全部往这边塞
 * @param  is_original  是 int 是否原图，1是，2不是
 * @return_param  width  int 原图的宽度
 * @return_param  height  int 原图的高度
 * @return_param  is_original  int 是否原图，1是，2不是
 * @return_param  url  string  原图的url
 * @return_param  thumb_url string 缩列图的网址
 * @return_param  thumbWidth  int 缩略图的宽度
 * @return_param  thumbHeight  int 缩略图的高度
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  nonce string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @return_param  msg_id string  消息id
 * @return_param  user_id int 发送人id
 * @return_param  nickname   string  发言人昵称
 * @return_param  head   string 发言人头像
 * @return_param type string 消息类型：请看统一说明
 * @remark  对方接受消息，会得到以下字段，内容content，发送人昵称nickname，发送人头像head，消息id ,action还是chat,消息发送时间time,发消息人的用户id 即user_id。文本类消息直接放content。
 */
function image(){

}

/**
 * showdoc
 * @catalog Websocket
 * @title  语音消息
 * @description 语音消息
 * @method
 * @url /
 * @param  extra 是 string 额外信息，有需要增加的字段，全部往这边塞
 * @param  duration  int 语音长度，单位秒
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  nonce string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @return_param  msg_id string  消息id
 * @return_param  user_id int 发送人id
 * @return_param  nickname   string  发言人昵称
 * @return_param  head   string 发言人头像
 * @return_param  voice_url 是 string 音频的url，放extra
 * @return_param  duration  int 语音长度，单位秒
 * @return_param type string 消息类型：请看统一说明
 * @remark  对方接受消息，会得到以下字段，内容content，发送人昵称nickname，发送人头像head，消息id ,action还是chat,消息发送时间time,发消息人的用户id 即user_id。文本类消息直接放content。
 */
function voice(){

}


/**
 * showdoc
 * @catalog Websocket
 * @title  消息发送结果
 * @description 消息发送结果,如果是群聊，会带group_id，当831消息重复时候，请在本地关联消息的id。注意，其他数据结构，消息会原原本本返回。服务端通过发送人的user_id和nonce确保消息的唯一性。
 * @method
 * @url /
 * @return_param  code int 状态码(200:成功0:失败401:未登录；400参数错误；811已经被拉黑；831消息重复)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  nonce string 消息随机字符串，原原本本返回
 * @return_param  msg_id string  消息id
 * @return_param  user_id int 发送人id
 * @return_param group_id int 不一定会有，当时群聊一定会有
*/
function sendmessageresult(){

}


/**
 * showdoc
 * @catalog Websocket
 * @title  消息已阅读
 * @description 消息已阅读,上行下行都是这样的格式
 * @method
 * @url /
 * @return {"code":200,"result":'WOut2yeSh2TFgRrrDCmgXw==',"msg":""}
 * @param content  string  内容
 * @param action  string  动作，固定是单聊还是用chat，群聊用groupChat
 * @param  nonce  string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @param  extra  string 额外信息，有需要增加的字段，全部往这边塞
 * @param  app_user_ids tring 当是单聊时候提交用户app_user_id，群聊不需要
 * @param  group_id string 当是群聊时候提交group_id，单聊不需要
 * @param  msg_id   string 消息id
 * @param  type  int  消息类型
 * @param  status  int  消息状态：0未送达1已送达2已阅读,客户端目前只用到2已阅读
 * @return_param content  string  内容
 * @return_param action  string  动作，固定是ack
 * @return_param  nonce   string 消息随机字符串，由时间戳+6位随机字符串，用于消息校验
 * @return_param  extra string 额外信息，有需要增加的字段，全部往这边塞
 * @return_param  msg_id   string 消息id
 * @return_param  type  int  消息类型
 * @return_param  status  int  消息状态：0未送达1已送达2已阅读
*/



/**
 * 编辑群
 * showdoc
 * @catalog Websocket/服务端主动推送
 * @title  群信息修改
 * @description 群信息修改
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  extra.group_id string 群id
 * @return_param extra.group_id 是 string 群id，必须传
 * @return_param extra.cover 否 string 群封面
 * @return_param extra.group_name 否 string 群名字
 * @return_param extra.banned_to_post 否 int 是否禁言：1禁言，0不禁言，开启后除了群主都不能发言
 * @return_param extra.invite_mode  否 int 是否开启邀请模式：1开启，0不开启
 * @return_param extra.notice 否 string 群公告，暂定限制300字
 * @return_param extra.app_user_id 否 string  新的群主app_user_id,注意，这个人必须已经是群成员，不是群成员会变更失败
 * @return_param  type int 消息类型12
 * @remark  这条是系统消息，服务端主动推送，每次修改群，都会受到变动信息，
 */


/**
 * showdoc
 * @catalog Websocket/服务端主动推送
 * @title  被邀请入群
 * @description 被邀请入群
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  extra.inviter.nickname string 邀请人昵称
 * @return_param  extra.inviter.app_user_id string 邀请人app_user_id
 * @return_param  extra.member_list.nickname string 被邀请人昵称
 * @return_param  extra.member_list.app_user_id string 被邀请人app_user_id
 * @return_param  extra.member_list array 返回完整群成员信息，格式跟群成员列表一样
 * @return_param  extra.group_info array 返回完整群信息，格式跟群详情一样
 * @return_param  msg_id string  消息id
 * @return_param  type int 消息类型17
 * @remark  这条是系统消息，服务端主动推送
 */



/**
 * showdoc
 * @catalog Websocket/服务端主动推送
 * @title  群解散
 * @description 群解散
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  data.group_id string 群id
 * @return_param  msg_id string  消息id
 * @return_param  type int 消息类型13
 * @remark  这条是系统消息，服务端主动推送，群解散系统会发一条消息类型为13的系统消息给客户端
 */

/**
 * showdoc
 * @catalog Websocket/服务端主动推送
 * @title  用户被移除群聊
 * @description 用户被移除群聊
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  data.extra.removed_member_list array 被移除人员列表
 * @return_param  data.extra.group_id string 移除人员的群
 * @return_param  data.admin.app_user_id  操作人的app_user_id
 * @return_param  data.admin.nickname  操作人的昵称
 * @return_param  msg_id string  消息id、
 * @return_param  type int 消息类型14
 * @remark
 */


/**
 * showdoc
 * @catalog Websocket/服务端主动推送
 * @title  用户加入群
 * @description 用户加入群
 * @return_param {"code":200,"msg":"sucess","data":"{\"group_id\":\"3\",\"content\":\"\",\"type\":16,\"extra\":{\"inviter\":{\"nickname\":\"\\u5c0f\\u767d\\u6328\\u997f\\u7684\\u65f6\\u5019\",\"app_user_id\":\"572f02b0988e3x369ad8ff0d3cd440a9\"},\"joiner\":{\"nickname\":\"\\u5c0f\\u767d\\u6328\\u997f\\u7684\\u65f6\\u5019\",\"app_user_id\":\"jianjianxianshen1g\",\"head\":\"http:\\\/\\\/img.xmfish.com\\\/attachment\\\/upload\\\/middle\\\/67\\\/2233367.jpg\"}}}","action":"systemMessage","nonce":"1594635219668NKtGhJ","time":1594635219789,"msg_id":5,"group_id":"3"}
 * @return_param  code int 状态码(200:成功0:失败401:未登录)
 * @return_param  data string 返回结果
 * @return_param  msg string 返回提示语
 * @return_param  extra.inviter.nickname 邀请人昵称
 * @return_param  extra.inviter.app_user_id 邀请人app_user_id
 * @return_param  extra.member_list.app_user_id 入群人app_user_id
 * @return_param  extra.member_list.nickname 入群人昵称
 * @return_param  extra.member_list.head 入群人头像
 * @return_param  group_id string 相关的群
 * @return_param  msg_id string  消息id
 * @remark  这条是系统消息，服务端主动推送
 */




